My role in Project III mainly has been In-Game UI Programmer. I was in charge of all the UI programming in the game, including HUDs, all the Menus features and the Revive Minigame.
I also programmed some game mechanics like the Training Dummies, the Checkpoint Bonfires and the Oscillator Obstacle, Core Debug Functionalities like Godmode and Checkpoint Manager & implemented a Scene Transition System in the Engine that allows for different transition types.
In addition, my classmate Oriol Capdevila and me, provided the engine used as a base, Alien Engine, that we developed in a previous subject: Game Engines.
We wanted to make very clear if and when the player were hit, so we added some effects to the HUD:
To make more incise in the combos, I added a Damage Counting system that shows the damage of each attack and when the player completes a combo. When a combo is completed or broken, all the damage of each attack gets together in the total bigger number. In addition, it also shows the current player effects in the combo.
Also, I implemented an "On Fire" system that showed when the players are doing really well and give more positive feedback to the player. This mechanic is reinforced applying a shake to the Damage Count when certain quantities are achieved.
Alongside Marc Guillén, we made the Revive Minigame. I were in charge of implementing the proper minigame, while Marc programmed the player interaction with it.
The Minigame consisted in reviving the other player applying force in the precise moment at the beat of the other player heart. If you succeed in hitting in the right moment, the time window gets reduced and you have to be even more precise. The player revives with more or less life depending on how well they did.
The minigame have several effects to make create more feel, like some beatings in the heart, scalings in buttons when pressed, etc.
Boss Lifebars are pretty straight forward. Is a big red bar that shows the health of the boss and makes the transitions smooth through lerps. But with the goal of adding a more epic feeling to the boss, I implemented a appearing animation:
I created a notification system for when you pick up relics and shows the relic picked. The notification shows the type of relic: Attack/Dash, the combo that it affects, the element of the relic and the player that picked up.
Althought at the last moment the Design Team decided to remove the ulti from the game, the Ultibar had some effects to attrack player attention:
Since the start, I have been in charge of designing, mounting and programming the Main Menu scene and its functionalities. The Main Menu has gone through several stages of iteration, but the main idea has remained the same.
The Scale Menu is the go-to Menu where the players go when they win or lose. The Menu show a recounting of damage and enemy kills and show the players the punctuation. I programmed all this menu functionalities, including the Scale Logic, Heads Spawner, and correct Scene management after it.
I implemented the Relics Menu, that works as a menu where players can check the relics and a menu where the players can check the existing combos. Players can check which combos affect the relics they have.
I programmed the pausing of the game and the functions of the buttons in the menu.
I also made the Credits Menu for our project.
Bonfires are a core mechanic of our game. When the player approaches them, they get turned on and heal the players to their full life. If any player were dead, they get revived.
Also they serve as a Checkpoint, where the players get spawned if the die in the level.
Traning Dummies goal is to teach the player that they can do combos. I was in charge of programming the first iteration. When hitting the Dummie, UI Shows the attack they made and the combo that they're doing.
Oscillators are obtacles created with the goal of test the players ability to dash. There are different players of oscillations, changing in direction, player interacion type:
As seen in the bellow GIF, I implemented that the player could only fall if the oscillator hits them, but can't fall from running.